Bar code symbologies were first disclosed in U.S. Pat. No. 1,985,035 by Kermode and expanded shortly thereafter in the 1930's in U.S. Pat. No. 2,020,925 by Young, assigned to Westinghouse. These early symbologies were printed by generating a multiplicity of single width elements of lower reflectance, or "bars," which were separated by elements of higher reflectance, or "spaces." An "element" is a bar or space. These early symbologies, and many "bar code symbologies" used today can be referred to as "linear symbologies" because data in a given symbol is decoded along one axis or direction. Symbologies such as linear symbologies encode "data characters" (e.g., human readable characters) as "symbol characters," which are generally parallel arrangements of alternating bars and spaces that form unique groups of patterns to encode specific data characters. Data characters include not only human readable characters, but also include special function characters such as start, stop or shift characters that provide certain functional data. Each unique group or pattern of bars and spaces within a predetermined width defines a particular symbol character, and thus a particular data character or characters. A given linear symbol or "bar code symbol" (or "symbol" for short) encodes several data characters along its length as several groups of unique bar and space patterns.
The first bar code symbology patent to Kermode described a symbology that encoded data by varying the number of single width bars separated by a fixed spacing. Young varied both the number of single width bars and the widths of the spaces therebetween. As a result, the symbology of Young could encode a greater amount of data in a given distance for a certain minimum bar width than the symbology of Kermode that employs only a single width element. The symbology of Young thereby recognized that multi-width element symbologies provide a greater "information density" over symbologies employing single width elements.
Many symbologies and applications of the bar code art were described in the intervening years until the first omni-directional symbology was described by Woodland and Silver in 1952, in U.S. Pat. No. 2,612,994, assigned to IBM. Rather than employing rectangular bars, their symbology utilized bars and spaces that were curved and arranged into a circle. Their symbology, however, also employed single width elements, in this case spaces separated by variable width bars. Therefore, their symbology had less information density than full multi-width element symbologies.
Many symbologies utilizing variable width bars and spaces were described in the art during the 1960's, but none reached broad usage. Sometime during the 1960's, the first successful symbology was developed by an unknown person or persons and was dubbed "2 of 5 code" because of the structure of its symbol characters. The 2 of 5 code is still used today by the airline industry on some airline tickets, and in other industries. The 2 of 5 code utilizes single width spaces separated by bars of one of two widths arranged in a pattern of five bars per character where two of the five bars are always wide. The 2 of 5 code, and other single width element symbologies, did not proliferate further because the information density was inferior to other patterns which utilized variable widths for both the bars and the spaces.
In the 1970's, the next single width element symbology was introduced as a new decode method called "edge-to-edge" decoding and applied to a symbology called "Delta-D code" by McEnroe and Jones of IBM. An edge-to-edge decodable symbology is generally immune to uniform distortions in the printing process such as distortions generated by ink spread. In edge-to-edge decoding, a typical laser scanner reads a bar code by measuring a distance between like edges (e.g., the width of a leading edge of one bar to the leading edge of the next bar in a given symbol). While being valuable in the 1970's, immunity from uniform distortions is less important today because microprocessors and computers can compensate for the distortion effect.
In the 1970's, edge-to-edge decoding was sufficiently popular that it was applied to the newly developed supermarket symbology, U.P.C. The U.P.C. symbology was described generically by Savir and Laurer of IBM as a (7,2) "n,k code" in 1974. An "n,k code" is defined as a symbology where each symbol character has a n number of bars and spaces and whose total length is k modules long. Therefore, the U.P.C. symbology encodes two bars and two spaces in each symbol character and each symbol character is seven modules long. A module is the narrowest nominal width unit of measure in a bar code symbology (a 1-wide bar or space). "Nominal" refers to the intended value of a specific parameter, regardless of printing errors, etc.
A great advantage of the single-width bar symbologies such as Delta-D code was that they were generally easy to print, capable of being implemented on a typewriter type printing device. Another advantage of the single-width bar symbologies was that they were easy to read, due to the absence of different bar widths. Typical bar code scanners read bar codes by producing different analog waveforms from bar codes having variable width bars and spaces. When the scanner fails to fully resolve the smallest, one-wide elements, only the wider elements (i.e., two-wide or larger width elements) become resolved. A bar or space is "resolved" if the scanner is able to identify a peak or valley in the wave form that corresponds to the given bar or space. Consequently, when one element is fixed, the variability of that element type is reduced. For example, if a symbology has only one-wide bars, the scanner need only identify a valley for each bar, and not the width of that bar based on the width of the valley in the wave form. As a result, single-width element symbologies allow for slightly better reader performance at the expense of decreased information density.
Recently, a single width symbology called BC412 was disclosed in U.S. Pat. No. 5,380,998 by Bossen et al. and assigned to IBM. The BC412 symbology was applied to the area of semiconductor wafer marking because of the ease of making single width marks. In this symbology, the bars have a variable width while the spaces, which are etched, have a single width. The symbology follows a pattern derived from the (12,4) n,k set where all the spaces wider than one module are eliminated. The resulting character set contains only 35 patterns, which is not quite sufficient to fully represent the complete alpha-numeric character set. A fully alphanumeric character set must contain, at a minimum, 36 patterns to encode the data characters A-Z and 0-9. The BC412 symbology employs the same symbol character to encode both of the data characters "0" and "0", and is therefore not fully alphanumeric.
The start and stop patterns of the BC412 symbology employ three or four elements and thus are smaller than the data characters which employ eight elements. The advantage of a three or four element start and stop pattern is that it has a small printing area. The start and stop patterns are virtually identical to the start and stop patterns in one version of the 2 of 5 code and in the well-known "Interleaved 2 of 5" symbology. Consequently, a disadvantage of the small start/stop pattern in the BC412 symbology is the chance of mistaking a BC412 symbol for a symbol from a different symbology. Another disadvantage of the small start/stop symbol characters in the BC412 symbology is that any symbol must have a fixed length (i.e., a fixed number of symbol characters) to eliminate the possibility of a "short scan," i.e., where a scan beam exits the symbol prematurely, yet is decodable as a symbol with fewer characters.
Assuming the BC412 symbology employs some checking scheme, any such checking scheme would be inefficient. As is known, data characters encoded under nearly all symbologies can result in errors when decoded by a laser scanner or other bar code reader. To reduce errors, certain symbologies include check characters. A "check character" is a symbol character included within a given bar code symbol (usually at the end of the symbol characters, although placement is not important to its function) whose value is used to perform a mathematical check that determines whether the symbol has been decoded correctly.
For example, the known Code 39 symbology has an optional modulo 43 check character that can be included as the last symbol character in a symbol. The Code 39 check character is calculated by determining a character value for each data character in an original message, adding together all of the character values, and dividing the sum by 43. The check character becomes the remainder that results from such division, and is appended to the end of a symbol encoded from the message. A "character value" is a number representing a data character in a given symbology. For example, in the Code 39 symbology, the data character "A" has a character value of "10".
The Code 39 symbology employs 43 symbol characters, which is a prime number of symbol characters. Therefore, using modulo 43 mathematics to generate a check character, a unique check character for any given series of data characters will always result. The U.P.C. symbology, however, employs a modulo 10 check character. Since 10 is a non-prime number having factors of 1, 2 and 5, and therefore a modulo 10 checking scheme can provide two different check characters for a given string of data characters. As a result, the U.P.C. symbology application environment employs a data base having a look up table to compensate for such a shortcoming of the checking scheme.
The BC412 symbology similarly does not include a prime number of characters. Consequently the effectiveness of the check character is greatly diminished. Non-unique check characters can be generated, which results in less effective error detection for the BC412 symbology. However, the BC412 symbology is apparently designed for use on semiconductor wafers. Prior manual methods of marking semiconductor wafers included etching alphanumeric characters, which were then read and input manually. Therefore, the lack of high quality error detection is still superior to prior manual methods of reading data from the wafers.
Some of the above disadvantages of the BC412 symbology are minimized in the application of the symbology to wafer marking. The data to be encoded is of a fixed length, which allows a reader to reject short scans. The data character fields in the symbology are restricted to allow the "0" numeric character to be used when an "O" alpha character is needed. A reader can be restricted to read only one symbology thereby eliminating the chance of an autodiscrimination error. "Autodiscrimination" refers to the ability of a bar code scanner or reader to recognize and correctly decode more than one symbology.
Additionally, when a BC412 symbol is viewed in a slightly out-of-focus position, groups of narrow elements are unresolved and appear to have the same contrast leading to misinterpretation as wide bars. Consequently, due to the simple nature of the start and stop symbol characters employed in the BC412 symbology, the symbology is open to frequent autodiscrimination errors with other popular symbologies such as Code 39, Interleaved 2 of 5 and Code 128, to name a few.
Overall, the inventor is unaware of a single width element symbology that is fully alphanumeric. The inventor is also unaware of a single width element symbology capable of providing full ASCII and extended ASCII. Additionally, the inventor is unaware of such a symbology capable of eliminating autodiscrimination problems. Furthermore, the inventor is unaware of such a symbology employing an error detection scheme capable of providing exceptional data security. Lastly, the inventor is unaware of any symbology of any type that allows a standard bar code reader to determine the relative focus state of the reader.